﻿/**********************************************************************
 * @file   GUIGeometryNodeDialog.h
 * @brief  几何点的界面声明
 * @author liuzhonghua (liuzhonghuaszch@163.com)
 * @date   2025-02-10
 *********************************************************************/
#ifndef _GUIGeometryNodeDialog_H
#define _GUIGeometryNodeDialog_H

#include "GUIGeometryBaseDialog.h"

namespace Ui{
    class GUIGeometryNodeDialog;
}

namespace Interface
{
    class FITKAbsGeoModelPoint;
}

namespace GUI
{
    /**
     * @brief cude create or edit widget
     * @author liuzhonghua (liuzhonghuaszch@163.com)
     * @date 2024-08-14
     */
    class GUIGeometryDialogAPI GUIGeometryNodeDialog : public GUIGeometryBaseDialog
    {
        Q_OBJECT;
    public:
        /**
         * @brief create constructor
         * @param[i]  oper           operators
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date 2024-08-14
         */
        GUIGeometryNodeDialog(Core::FITKActionOperator* oper, QWidget* parent = nullptr);
        /**
         * @brief edit constructor
         * @param[i]  obj            My Param doc
         * @param[i]  oper           My Param doc
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date 2024-08-14
         */
        GUIGeometryNodeDialog(Interface::FITKAbsGeoModelPoint* obj, Core::FITKActionOperator* oper, QWidget* parent = nullptr);
        /**
         * @brief Destroy the Cude Info Widget object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date 2024-08-14
         */
        ~GUIGeometryNodeDialog();
        /**
         * @brief init
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date 2024-08-14
         */
        void init() override;

    private slots:
        /**
         * @brief cencel button clicked slot
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date 2024-08-14
         */
        void on_pushButton_Cancel_clicked();
        /**
         * @brief ok button clicked slot
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date 2024-08-14
         */
        void on_pushButton_OK_clicked();

    private:
        /**
         * @brief Get the Data Form Widget object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date 2024-08-14
         */
        void getDataFormWidget();
        /**
         * @brief    获取设置的名称
         * @return   QString
         * @author   liuzhonghua (liuzhonghuaszch@163.com)
         * @date     2025-02-10
         */
        QString getNameText() override;

    private:
        /**
         * @brief ui object
         * @author liuzhonghua (liuzhonghuaszch@163.com)
         * @date 2024-08-14
         */
        Ui::GUIGeometryNodeDialog* _ui = nullptr;
    };
}

#endif
